import pandas as pd

# demo = r'C:\Users\Admin\Desktop\牧草-病虫害关系.xlsx'
demo = 'TOP20W词表无线.xlsx'
sheet = pd.read_excel(io=demo, sheet_name='无线')
# demo = 'test.xlsx'
# sheet = pd.read_excel(io=demo, sheet_name='Sheet1')

print(sheet)
# 通过shape方法获得表格的高和宽
height, width = sheet.shape
print(height)
print(width)

b = sheet.loc[0]  # 获取第一行的数据  下标从0开始的
print(type(b))
print(b)

# 将第一行的数据，从第一列开始循环输出，可以将b转为成列表形式
for i in b:
    print(i)

a = list(b)  # 转成列表形式 便于用下标提取数据
print(a)

# 遍历输出每一行的数据
# print('遍历输出每一行的数据')
# for i in range(height):
#     b = sheet.loc[i]
#     a=list(b)
#     print(a[0]) #获取实体1 那一列的数据


print()
print()
print()
# letter列的值如果是'a'，或'b‘,则该行被选中
# print(df[df['letter'].isin(['a','b'])])
# data = sheet
print(sheet['一级类目'].isin(['户外/登山/野营/旅行用品']))
bool = sheet['一级类目'].isin(['户外/登山/野营/旅行用品'])
print()
print(sheet[sheet['一级类目'].isin(['户外/登山/野营/旅行用品'])])  # data[bool] = sheet[sheet['一级类目'].isin(['户外/登山/野营/旅行用品'])]
print()
print(sheet[sheet['一级类目'].isin(['户外/登山/野营/旅行用品'])]['二级类目'].isin(['垂钓装备']))  # bool2 = data[bool]['二级类目'].isin(['垂钓装备'])
print()
# data[bool2]
print(sheet[sheet['一级类目'].isin(['户外/登山/野营/旅行用品'])][sheet[sheet['一级类目'].isin(['户外/登山/野营/旅行用品'])]['二级类目'].isin(['垂钓装备'])])

print()
print()
print()
orgList = [1, 0, 3, 7, 7, 5]
# list()方法是把字符串str或元组转成数组
formatList = list(set(orgList))
print(formatList)

print()
print()
print()
df = pd.DataFrame({"c1": [1, 1, 2, 3, 1], "c2": [10, 20, 30, 40, 50]})
print(df)
print()
result = df['c1'].unique()
print(result)
print(type(result))
print(result.tolist())
print()

ret = df[df['c1'] == 1]['c2'].unique()
print(ret)
print(type(ret))

print()
print()
print('..............')
print(len(sheet['一级类目'].unique()))

# inplace=True：不创建新的对象，直接对原始对象进行修改；
# inplace=False：对数据进行修改，创建并返回新的对象承载其修改结果
# set_index( ) 将 DataFrame 中的列转化为行索引。
sheet.set_index('一级类目', inplace=True)
bl = sheet.index.isin(['户外/登山/野营/旅行用品'])
print(sheet.loc[bl])
